使用第三方函式庫
=========================

Yii 是精心設計的使得第三方函式庫可以輕易整合，進一步擴大 Yii 的功能。 當在一個項目中使用第三方函式庫，程式設計師往往遇到關於類別命名和檔案載入的問題。 因為所有 Yii 類別以 `C` 字母開頭，這就減少可能會出現的類命名問題；而且，因為 Yii 依賴於 [SPL autoload](http://us3.php.net/manual/en/function.spl-autoload.php) 執行類別檔案載入，它可以跟其他函式庫很好地結合，如果他們使用相同的自動加載功能或 PHP 包含路徑包含類別檔案。

下面我們用一個例子來說明如何在一個 Yii 應用程式從 [Zend framework](http://www.zendframework.com) 使用[Zend_Search_Lucene](http://www.zendframework.com/manual/en/zend.search.lucene.html) 元件。

首先，假設 `protected` 是[application base directory](/doc/guide/basics.application#application-base-directory)，我們擷取 Zend Framework 的發佈檔案到 `protected/vendors` 目錄。確認 `protected/vendors/Zend/Search/Lucene.php` 檔案存在。

第二，在一個控制器類別檔案的開始，加入如下：

~~~
[php]
Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');
~~~

上述程式碼包含類檔案 `Lucene.php`。因為我們使用的是相對路徑，我們需要改變 PHP 的包含路徑，以使檔案可以正確定位。這是通過在 `require_once` 之前調用 `Yii::import` 做到。 

一旦上述設立準備就緒後，我們可以在控制器的動作裡裡使用 `Lucene` 類別，如下：

~~~
[php]
$lucene=new Zend_Search_Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));
~~~


<div class="revision">$Id$</div>